t = int(input())
for _ in range(t):
n, k , pb, ps = map(int, input().split())
p = list(map(int, input().split()))
a = list(map(int, input().split()))
s_set = { ps }
b_set = { pb }
max_b = a[pb - 1] * k
total_b = a[pb - 1]
max_s = a[ps - 1] * k
total_s = a[ps - 1]
if k > 1:
pb = p[pb - 1]
kb = k - 1
while pb not in b_set and kb > 0:
b_set.add(pb)
max_b = max(max_b, total_b + a[pb - 1] * kb)
total_b += a[pb - 1]
pb = p[pb - 1]
kb -= 1
ps = p[ps - 1]
ks = k - 1
while ps not in s_set and ks > 0:
s_set.add(ps)
max_s = max(max_s, total_s + a[ps - 1] * ks)
total_s += a[ps - 1]
ps = p[ps - 1]
ks -= 1
if max_s == max_b:
print("Draw")
elif max_b < max_s:
print("Sasha")
else:
print("Bodya")
Divisible | Three primes |
Coprimes | Cost of balloons |
One String No Trouble | Help Jarvis! |
Lift queries | Goki and his breakup |
Ali and Helping innocent people | Book of Potion making |
Duration | Birthday Party |
e-maze-in | Bricks Game |
Char Sum | Two Strings |
Anagrams | Prime Number |
Lexical Sorting Reloaded | 1514A - Perfectly Imperfect Array |
580A- Kefa and First Steps | 1472B- Fair Division |
996A - Hit the Lottery | MSNSADM1 Football |
MATCHES Playing with Matches | HRDSEQ Hard Sequence |
DRCHEF Doctor Chef | 559. Maximum Depth of N-ary Tree |
821. Shortest Distance to a Character | 1441. Build an Array With Stack Operations |